﻿/*
SINACOR - BMF&Bovespa
Arquivo: ExisteBrokerIntermediarioCadastrado.cs
Criado em: 26-mai-2010 17:49:30
Arquiteto Responsável: p-wgeneroso
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using Sinacor.Infra.Service.Validation;
using Sinacor.Infra.Service.Common;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Service.Validation.BusinessRules;
using Sinacor.Infra.Common.Validation;

namespace Sinacor.Servico.Bovespa.Cliente.BusinessLogic.BusinessRuleValidation
{
    public class ExisteBrokerIntermediarioCadastrado : BaseBusinessRuleValidation<BusinessEntity.RelacionamentoBroker>, IBusinessRuleValidation
    {
        #region Atributos

        private int _clienteNaoCadastrado = 109718;

        #endregion

        #region Construtores

        public ExisteBrokerIntermediarioCadastrado() 
        {
        }

        #endregion Construtores

        #region Propriedades

        public int ClienteNaoCadastrado
        {
            get
            {
                return _clienteNaoCadastrado;
            }
            set
            {
                _clienteNaoCadastrado = value;
            }
        }

        #endregion

        #region Métodos

        public List<ValidationError> GetErrors()
        {
            return base.ErrorsList;
        }

        public void Validate()
        {
            ResourceAccess.RelacionamentoBroker raRelacionamentoBroker = new ResourceAccess.RelacionamentoBroker();

            if (!raRelacionamentoBroker.VerificarBrokerPrincipalIntermediario(new BusinessEntity.Parameter.FiltroRelacionamentoBrokerChave 
                                                                                                                { 
                                                                                                                    CodigoBrokerIntermediario = EntityToValidate.CodigoBrokerIntermediario,
                                                                                                                    CodigoBrokerPrincipal = EntityToValidate.CodigoBrokerPrincipal
                                                                                                                }))
            {
                if (!raRelacionamentoBroker.VerificarBrokerPrincipalIntermediario(new BusinessEntity.Parameter.FiltroRelacionamentoBrokerChave
                                                                                                                {
                                                                                                                    CodigoBrokerIntermediario = EntityToValidate.CodigoBrokerIntermediario
                                                                                                                }))
                {
                    base.AddValidationError(ClienteNaoCadastrado);
                }
            }
        }

        #endregion
    }
}